package vistas;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.table.AbstractTableModel;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
@SuppressWarnings("serial")
public class FrmArbitros extends javax.swing.JFrame {

	private JPanel panelNuevoArbitro;
	private JPanel panelTablaArbitros;
	private JScrollPane scrollTablaArbitros;
	private JTable tablaArbitros;
	private JLabel lblTablaArbitros;
	private JLabel lblNuevoArbitro;
	private JLabel lblCedula;
	private JLabel lblNombre;
	private JLabel lblApellido;
	private JLabel lblFechaNacimiento;
	private JTextField txtCedula;
	private JTextField txtNombre;
	private JTextField txtApellido;
	private JTextField txtFechaNacimiento;
	private JButton btnRegistrar;
	private JButton btnVolver;
	
	
	/**
	* Auto-generated main method to display this JFrame
	*/
		
	public FrmArbitros() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				panelTablaArbitros = new JPanel();
				getContentPane().add(panelTablaArbitros, BorderLayout.CENTER);
				panelTablaArbitros.setBounds(30, 30, 370, 320);
				panelTablaArbitros.setLayout(null);				
				panelTablaArbitros.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
				{
					lblTablaArbitros = new JLabel();
					panelTablaArbitros.add(lblTablaArbitros);
					lblTablaArbitros.setText("Listado de Arbitros");
					lblTablaArbitros.setBounds(10, 20, 350, 20);
					lblTablaArbitros.setFont(new java.awt.Font("Dialog",1,18));
					lblTablaArbitros.setHorizontalAlignment(SwingConstants.CENTER);
				}
				{
					scrollTablaArbitros = new JScrollPane();
					panelTablaArbitros.add(scrollTablaArbitros);
					scrollTablaArbitros.setBounds(10, 60, 350, 250);
					{
						tablaArbitros = new JTable();
						scrollTablaArbitros.setViewportView(tablaArbitros);
					}
				}
			}
			{
				panelNuevoArbitro = new JPanel();
				getContentPane().add(panelNuevoArbitro);
				panelNuevoArbitro.setBounds(430, 30, 240, 320);
				panelNuevoArbitro.setLayout(null);				
				panelNuevoArbitro.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
				{
					lblNuevoArbitro = new JLabel();
					panelNuevoArbitro.add(lblNuevoArbitro);
					lblNuevoArbitro.setText("Nuevo Arbitro");
					lblNuevoArbitro.setBounds(20, 20, 200, 20);
					lblNuevoArbitro.setFont(new java.awt.Font("Dialog",1,18));
					lblNuevoArbitro.setHorizontalAlignment(SwingConstants.CENTER);
				}
				{
					lblCedula = new JLabel();
					panelNuevoArbitro.add(lblCedula);
					lblCedula.setText("Cédula:");
					lblCedula.setBounds(20, 70, 200, 20);
				}
				{
					txtCedula = new JTextField();
					panelNuevoArbitro.add(txtCedula);
					txtCedula.setBounds(20, 90, 200, 20);
					txtCedula.addKeyListener(listenerKeyValidar());
				}
				{
					lblNombre = new JLabel();
					panelNuevoArbitro.add(lblNombre);
					lblNombre.setText("Nombre:");
					lblNombre.setBounds(20, 130, 200, 20);
				}
				{
					txtNombre = new JTextField();
					panelNuevoArbitro.add(txtNombre);
					txtNombre.setBounds(20, 150, 200, 20);
					txtNombre.addKeyListener(listenerKeyValidar());
				}
				{
					lblApellido = new JLabel();
					panelNuevoArbitro.add(lblApellido);
					lblApellido.setText("Apellido:");
					lblApellido.setBounds(20, 190, 200, 20);
				}
				{
					txtApellido = new JTextField();
					panelNuevoArbitro.add(txtApellido);
					txtApellido.setBounds(20, 210, 200, 20);
					txtApellido.addKeyListener(listenerKeyValidar());
				}
				{
					lblFechaNacimiento = new JLabel();
					panelNuevoArbitro.add(lblFechaNacimiento);
					lblFechaNacimiento.setText("Fecha de Nacimiento:");
					lblFechaNacimiento.setBounds(20, 250, 200, 20);
				}
				{
					txtFechaNacimiento = new JTextField();
					panelNuevoArbitro.add(txtFechaNacimiento);
					txtFechaNacimiento.setBounds(20, 270, 200, 20);
					txtFechaNacimiento.addKeyListener(listenerKeyValidar());
				}
			}
			{
				
				btnVolver = new JButton();
				getContentPane().add(btnVolver);
				btnVolver.setText("Volver");
				btnVolver.setBounds(70, 380, 160, 50);
			}		
			{
				btnRegistrar = new JButton();
				getContentPane().add(btnRegistrar);
				btnRegistrar.setText("Registrar");
				btnRegistrar.setBounds(470, 380, 160, 50);
			}
			pack();
			setSize(700, 500);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public JTextField getTxtCedula() {
		return txtCedula;
	}

	public void setTxtCedula(JTextField txtCedula) {
		this.txtCedula = txtCedula;
	}

	public JTextField getTxtNombre() {
		return txtNombre;
	}

	public void setTxtNombre(JTextField txtNombre) {
		this.txtNombre = txtNombre;
	}

	public JTextField getTxtApellido() {
		return txtApellido;
	}

	public void setTxtApellido(JTextField txtApellido) {
		this.txtApellido = txtApellido;
	}

	public JTextField getTxtFechaNacimiento() {
		return txtFechaNacimiento;
	}

	public void setTxtFechaNacimiento(JTextField txtFechaNacimiento) {
		this.txtFechaNacimiento = txtFechaNacimiento;
	}

	public void agregarListener(ActionListener accion){
		btnRegistrar.addActionListener(accion);
		btnVolver.addActionListener(accion);
	}
	
	public void setListado(AbstractTableModel abstractTableModel){
		tablaArbitros.setModel(abstractTableModel);
	}
	
	public void mostrarMensaje(String mensaje){
		JOptionPane.showMessageDialog(this, mensaje);
	}
	
	public KeyListener listenerKeyValidar(){
		return new KeyListener() {
			@Override
			public void keyTyped(KeyEvent e) {
				validarCampos();
			}
			@Override
			public void keyReleased(KeyEvent e) {
				validarCampos();
			}
			@Override
			public void keyPressed(KeyEvent e) {
				validarCampos();
			}
		};
	}
	
	public void validarCampos(){
		if (txtNombre.getText().isEmpty() || txtCedula.getText().isEmpty() ||
				txtFechaNacimiento.getText().isEmpty() || txtApellido.getText().isEmpty())
			btnRegistrar.setEnabled(false);
		else
			btnRegistrar.setEnabled(true);			
	}
	
	public void limpiar(){
		this.txtNombre.setText("");
		this.txtFechaNacimiento.setText("");
		this.txtCedula.setText("");
		this.txtApellido.setText("");
		this.btnRegistrar.setEnabled(false);
	}
}
